package com.azxcrm.project.monitor.workflow.dao;

import java.util.List;

import com.azxcrm.project.monitor.workflow.domain.WorkFlow;

/**
 * 工作流 数据层
 * 
 * @author Dustyone
 * @date 2018-08-07
 */
public interface WorkFlowDao
{

	/**
     * 查询工作流信息
     * 
     * @param FlowId 工作流ID
     * @return 工作流信息
     */
	public WorkFlow selectWorkFlowById(Integer flowId);  
	
	/**
	 * 根据flowCode查询工作流信息
	 * @param flowCode
	 * @return 工作流信息
	 */
	public WorkFlow selectWorkFlowByCode(String flowCode);
	
	/**
     * 查询工作流列表
     * 
     * @param workFlow 工作流信息
     * @return 工作流集合
     */
	public List<WorkFlow> selectWorkFlowList(WorkFlow workFlow);
	
	/**
     * 查询工作流状态列表
     * 
     * @param workFlow 工作流信息
     * @return 工作流集合
     */
	public List<WorkFlow> selectWorkFlowStatesList(WorkFlow workFlow);
	
	/**
     * 新增工作流
     * 
     * @param workFlow 工作流信息
     * @return 结果
     */
	public int insertWorkFlow(WorkFlow workFlow);
	
	/**
     * 修改工作流
     * 
     * @param workFlow 工作流信息
     * @return 结果
     */
	public int updateWorkFlow(WorkFlow workFlow);
	
	/**
     * 删除工作流
     * 
     * @param FlowId 工作流ID
     * @return 结果
     */
	public int deleteWorkFlowById(Integer flowId);
	
	/**
     * 批量删除工作流
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
	public int batchDeleteWorkFlow(Integer[] flowIds);
	
	/**
     * 查询该工作流是否已被应用
     * 
     * @param flowId 流程ID
     * @return 结果 true 存在 false 不存在
     */
     int checkFlowIsApplyed(int flowId);
}